Jarod Stewart
04/20/2022, 10:37 PMimport { Function, StackContext } from '@serverless-stack/resources';
export function MyStack({ stack }: StackContext) {
new Function(stack, 'Func', {
srcPath: 'backend',
handler: 'services/sample/index.handler',
});
}
gives a type error:
TS2345: Argument of type 'Stack' is not assignable to parameter of type 'Construct'.
Jarod Stewart
04/20/2022, 10:42 PMJarod Stewart
04/20/2022, 10:42 PMthdxr
04/20/2022, 10:48 PMthdxr
04/20/2022, 10:48 PMFrank
Frank
package.json
and what your index file looks like?Jarod Stewart
04/21/2022, 1:06 AMJarod Stewart
04/21/2022, 3:03 AMimport { App } from '@serverless-stack/resources';
import { GoodUncle, MyStack } from './MyStack';
export default function main(app: App): void {
app.setDefaultFunctionProps({
runtime: 'nodejs14.x',
});
app.stack(MyStack).stack(GoodUncle);
}
Jarod Stewart
04/21/2022, 3:08 AM"@serverless-stack/cli": "1.0.0-beta.21",
"@serverless-stack/resources": "1.0.0-beta.21",
"@serverless-stack/static-site-env": "1.0.0-beta.21",
thdxr
04/21/2022, 3:32 AMJarod Stewart
04/21/2022, 3:32 AMthdxr
04/21/2022, 3:33 AMJarod Stewart
04/21/2022, 3:33 AMrm -rf node_modules
in my root and frontend packagethdxr
04/21/2022, 3:34 AMthdxr
04/21/2022, 3:34 AMJarod Stewart
04/21/2022, 3:35 AMimport { Function, NextjsSite, StackContext, Table } from '@serverless-stack/resources';
export function MyStack({ stack }: StackContext) {
new Function(stack, 'Func', {
bundle: {
esbuildConfig: {
plugins: 'config/esbuild.js',
},
},
srcPath: 'backend',
handler: 'services/sample/index.handler',
});
}
export function GoodUncle({ stack }: StackContext) {
// Create the table
const subscriptionsTable = new Table(stack, 'Subscriptions', {
fields: {
email: 'string',
date: 'string',
},
primaryIndex: { partitionKey: 'email', sortKey: 'date' },
});
// Create a Next.js site
const site = new NextjsSite(stack, 'Site', {
path: 'gooduncle',
environment: {
// Pass the table details to our app
REGION: stack.region,
SUBSCRIPTION_TABLE_NAME: subscriptionsTable.tableName,
},
});
// Allow the Next.js API to access the table
site.attachPermissions([subscriptionsTable]);
// Show the site URL in the output
stack.addOutputs({
URL: site.url,
});
return {
subscriptionsTable,
site,
};
}
thdxr
04/21/2022, 3:36 AMJarod Stewart
04/21/2022, 3:38 AMnew <Construct>
(Function, Table, NextjsSite) on the first parameter (stack,
thdxr
04/21/2022, 3:39 AMJarod Stewart
04/21/2022, 3:39 AMthdxr
04/21/2022, 3:40 AMJarod Stewart
04/21/2022, 3:41 AM"aws-cdk-lib": "2.20.0"
thdxr
04/21/2022, 3:47 AMthdxr
04/21/2022, 3:48 AMJarod Stewart
04/21/2022, 3:48 AMJarod Stewart
04/21/2022, 3:48 AMthdxr
04/21/2022, 3:49 AMtsc --noEmit
Jarod Stewart
04/21/2022, 3:49 AMthdxr
04/21/2022, 3:49 AMthdxr
04/21/2022, 3:49 AMJarod Stewart
04/21/2022, 3:50 AMJarod Stewart
04/21/2022, 3:50 AMJarod Stewart
04/21/2022, 3:51 AMthdxr
04/21/2022, 3:51 AMJarod Stewart
04/21/2022, 3:52 AMJarod Stewart
04/21/2022, 3:55 AMyarn install --force
Jarod Stewart
04/21/2022, 3:55 AMthdxr
04/21/2022, 3:56 AMJarod Stewart
04/21/2022, 3:56 AMJarod Stewart
04/21/2022, 3:58 AM