From 074fc181ea96cc631e35441b5c31ecf4081640f8 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 11:42:18 +0100 Subject: [PATCH 1/6] chore(config): remove useless indentation rules --- .editorconfig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index 473e451..4a7ea30 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,9 +8,5 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[{package.json,*.yml}] -indent_style = space -indent_size = 2 - [*.md] trim_trailing_whitespace = false From 0b235904a830ac0618f43840b760be816bcca361 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 11:50:09 +0100 Subject: [PATCH 2/6] chore(demos): add Node.js JavaScript demo --- demos/demo-node-javascript/index.js | 16 ++++++++++++++++ demos/demo-node-javascript/package.json | 20 ++++++++++++++++++++ demos/demo-node-javascript/pnpm-lock.yaml | 12 ++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 demos/demo-node-javascript/index.js create mode 100644 demos/demo-node-javascript/package.json create mode 100644 demos/demo-node-javascript/pnpm-lock.yaml diff --git a/demos/demo-node-javascript/index.js b/demos/demo-node-javascript/index.js new file mode 100644 index 0000000..6dccc51 --- /dev/null +++ b/demos/demo-node-javascript/index.js @@ -0,0 +1,16 @@ +const { strapi } = require('@strapi/sdk-js'); + +async function main() { + // Create the SDK instance + const sdk = strapi({ baseURL: 'http://localhost:1337/api' }); + + // Create a collection type query manager for the categories + const categories = sdk.collection('categories'); + + // Fetch the list of all categories + const docs = await categories.find(); + + console.dir(docs, { depth: null }); +} + +main().catch(console.error); diff --git a/demos/demo-node-javascript/package.json b/demos/demo-node-javascript/package.json new file mode 100644 index 0000000..da443e1 --- /dev/null +++ b/demos/demo-node-javascript/package.json @@ -0,0 +1,20 @@ +{ + "name": "demo-node-javascript", + "version": "1.0.0", + "description": "A Strapi SDK demo using a Node x JavaScript application", + "main": "index.js", + "scripts": { + "start": "node index.js", + "debug": "DEBUG=* node index.js" + }, + "dependencies": { + "@strapi/sdk-js": "link:../.." + }, + "keywords": [], + "author": { + "name": "Strapi Solutions SAS", + "email": "hi@strapi.io", + "url": "https://strapi.io" + }, + "license": "ISC" +} diff --git a/demos/demo-node-javascript/pnpm-lock.yaml b/demos/demo-node-javascript/pnpm-lock.yaml new file mode 100644 index 0000000..08fcad6 --- /dev/null +++ b/demos/demo-node-javascript/pnpm-lock.yaml @@ -0,0 +1,12 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + dependencies: + '@strapi/sdk-js': + specifier: link:../.. + version: link:../.. From 6d5235bc41e50d45d6a076094b95bfae3c52abb6 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 13:08:12 +0100 Subject: [PATCH 3/6] chore(build): update output file extensions for bundler --- package.json | 4 ++-- rollup.config.mjs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 6539c5a..a4db287 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,8 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "require": "./dist/bundle.cjs.js", - "import": "./dist/bundle.esm.js", + "require": "./dist/bundle.cjs", + "import": "./dist/bundle.mjs", "browser": { "import": "./dist/bundle.browser.min.js", "require": "./dist/bundle.browser.min.js" diff --git a/rollup.config.mjs b/rollup.config.mjs index a058b89..4f51b6e 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -35,14 +35,14 @@ const node_build = { output: [ // CommonJS build { - file: 'dist/bundle.cjs.js', + file: 'dist/bundle.cjs', format: 'cjs', sourcemap: isProduction ? 'hidden' : true, exports: 'named', }, // ESM build { - file: 'dist/bundle.esm.js', + file: 'dist/bundle.mjs', format: 'esm', sourcemap: isProduction ? 'hidden' : true, exports: 'named', From 7815260f7cf070a00e2bf90b278dbd61d1db9c73 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 13:08:49 +0100 Subject: [PATCH 4/6] chore(build): update output file extensions in doc --- rollup.config.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rollup.config.mjs b/rollup.config.mjs index 4f51b6e..1556636 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -13,11 +13,11 @@ const isProduction = process.env.NODE_ENV === 'production'; * system, ensuring compatibility with a wide range of tools and runtimes. * * Outputs: - * - CommonJS (dist/bundle.cjs.js): for environments using `require`. + * - CommonJS (dist/bundle.cjs): for environments using `require`. * Compatible with older tools and Node.js versions. * Includes source maps for debugging. * - * - ES Module (dist/bundle.esm.js): for modern import/export environments. + * - ES Module (dist/bundle.esm): for modern import/export environments. * Supports tree-shaking for smaller builds and also includes source maps. * * Plugins Used: From fdf9fd30af995a3529664f6398156e33bfe9f045 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 13:11:13 +0100 Subject: [PATCH 5/6] chore(demos): add demo for node and TypeScript using Strapi SDK --- demos/demo-node-typescript/package.json | 27 ++++++++++++++++++++++ demos/demo-node-typescript/pnpm-lock.yaml | 28 +++++++++++++++++++++++ demos/demo-node-typescript/src/index.ts | 12 ++++++++++ demos/demo-node-typescript/tsconfig.json | 26 +++++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 demos/demo-node-typescript/package.json create mode 100644 demos/demo-node-typescript/pnpm-lock.yaml create mode 100644 demos/demo-node-typescript/src/index.ts create mode 100644 demos/demo-node-typescript/tsconfig.json diff --git a/demos/demo-node-typescript/package.json b/demos/demo-node-typescript/package.json new file mode 100644 index 0000000..bab7024 --- /dev/null +++ b/demos/demo-node-typescript/package.json @@ -0,0 +1,27 @@ +{ + "name": "demo-node-typescript", + "version": "1.0.0", + "description": "A Strapi SDK demo using a Node x TypeScript application", + "main": "dist/index.js", + "private": true, + "type": "module", + "scripts": { + "build": "tsc -p tsconfig.json", + "watch": "tsc -p tsconfig.json -w", + "start": "node dist/index.js", + "debug": "DEBUG=* node dist/index.js" + }, + "dependencies": { + "@strapi/sdk-js": "link:../.." + }, + "devDependencies": { + "typescript": "5.7.3" + }, + "keywords": [], + "author": { + "name": "Strapi Solutions SAS", + "email": "hi@strapi.io", + "url": "https://strapi.io" + }, + "license": "ISC" +} diff --git a/demos/demo-node-typescript/pnpm-lock.yaml b/demos/demo-node-typescript/pnpm-lock.yaml new file mode 100644 index 0000000..868fce2 --- /dev/null +++ b/demos/demo-node-typescript/pnpm-lock.yaml @@ -0,0 +1,28 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + .: + dependencies: + '@strapi/sdk-js': + specifier: link:../.. + version: link:../.. + devDependencies: + typescript: + specifier: 5.7.3 + version: 5.7.3 + +packages: + typescript@5.7.3: + resolution: + { + integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==, + } + engines: { node: '>=14.17' } + hasBin: true + +snapshots: + typescript@5.7.3: {} diff --git a/demos/demo-node-typescript/src/index.ts b/demos/demo-node-typescript/src/index.ts new file mode 100644 index 0000000..b803d47 --- /dev/null +++ b/demos/demo-node-typescript/src/index.ts @@ -0,0 +1,12 @@ +import { strapi } from '@strapi/sdk-js'; + +// Create the SDK instance +const sdk = strapi({ baseURL: 'http://localhost:1337/api' }); + +// Create a collection type query manager for the categories +const categories = sdk.collection('categories'); + +// Fetch the list of all categories +const docs = await categories.find(); + +console.dir(docs, { depth: null }); diff --git a/demos/demo-node-typescript/tsconfig.json b/demos/demo-node-typescript/tsconfig.json new file mode 100644 index 0000000..a1c54f0 --- /dev/null +++ b/demos/demo-node-typescript/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + /* Language and Environment */ + "allowSyntheticDefaultImports": true, + + /* Modules */ + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "module": "NodeNext", + + /* Emit */ + "moduleResolution": "NodeNext", + + /* Interop Constraints */ + + "outDir": "./dist", + "rootDir": "./src", + "skipLibCheck": false, + + /* Type Checking */ + "strict": true, + + /* Completeness */ + "target": "ESNext" + } +} From 0a7eac3a41290dda1c11cc2756a5797ddf4e1b7f Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 30 Jan 2025 13:12:29 +0100 Subject: [PATCH 6/6] chore(demo): rename demos/ to demo/ --- {demos => demo}/demo-node-javascript/index.js | 0 {demos => demo}/demo-node-javascript/package.json | 0 {demos => demo}/demo-node-javascript/pnpm-lock.yaml | 0 {demos => demo}/demo-node-typescript/package.json | 0 {demos => demo}/demo-node-typescript/pnpm-lock.yaml | 0 {demos => demo}/demo-node-typescript/src/index.ts | 0 {demos => demo}/demo-node-typescript/tsconfig.json | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {demos => demo}/demo-node-javascript/index.js (100%) rename {demos => demo}/demo-node-javascript/package.json (100%) rename {demos => demo}/demo-node-javascript/pnpm-lock.yaml (100%) rename {demos => demo}/demo-node-typescript/package.json (100%) rename {demos => demo}/demo-node-typescript/pnpm-lock.yaml (100%) rename {demos => demo}/demo-node-typescript/src/index.ts (100%) rename {demos => demo}/demo-node-typescript/tsconfig.json (100%) diff --git a/demos/demo-node-javascript/index.js b/demo/demo-node-javascript/index.js similarity index 100% rename from demos/demo-node-javascript/index.js rename to demo/demo-node-javascript/index.js diff --git a/demos/demo-node-javascript/package.json b/demo/demo-node-javascript/package.json similarity index 100% rename from demos/demo-node-javascript/package.json rename to demo/demo-node-javascript/package.json diff --git a/demos/demo-node-javascript/pnpm-lock.yaml b/demo/demo-node-javascript/pnpm-lock.yaml similarity index 100% rename from demos/demo-node-javascript/pnpm-lock.yaml rename to demo/demo-node-javascript/pnpm-lock.yaml diff --git a/demos/demo-node-typescript/package.json b/demo/demo-node-typescript/package.json similarity index 100% rename from demos/demo-node-typescript/package.json rename to demo/demo-node-typescript/package.json diff --git a/demos/demo-node-typescript/pnpm-lock.yaml b/demo/demo-node-typescript/pnpm-lock.yaml similarity index 100% rename from demos/demo-node-typescript/pnpm-lock.yaml rename to demo/demo-node-typescript/pnpm-lock.yaml diff --git a/demos/demo-node-typescript/src/index.ts b/demo/demo-node-typescript/src/index.ts similarity index 100% rename from demos/demo-node-typescript/src/index.ts rename to demo/demo-node-typescript/src/index.ts diff --git a/demos/demo-node-typescript/tsconfig.json b/demo/demo-node-typescript/tsconfig.json similarity index 100% rename from demos/demo-node-typescript/tsconfig.json rename to demo/demo-node-typescript/tsconfig.json