Skip to content

Commit

Permalink
Merge 1041948 into ba1fb41
Browse files Browse the repository at this point in the history
  • Loading branch information
rogerpadilla committed Nov 23, 2022
2 parents ba1fb41 + 1041948 commit 0ffd583
Show file tree
Hide file tree
Showing 104 changed files with 564 additions and 586 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ export class MeasureUnit {
```ts
import { getQuerier } from 'nukak';
import { Transactional, InjectQuerier } from 'nukak/querier';
import { User } from './shared/models';
import { User } from './shared/models.js';

export class UserService {
@Transactional()
Expand Down
23 changes: 10 additions & 13 deletions jest.config.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
import tsconfig from './tsconfig.json';
import type { JestConfigWithTsJest } from 'ts-jest';

const tsConfigPaths = tsconfig.compilerOptions.paths;

const moduleNameMapper = Object.keys(tsConfigPaths).reduce((acc, key) => {
const prop = '^' + key.replace('/*', '/(.*)') + '$';
acc[prop] = '<rootDir>/' + tsConfigPaths[key][0].replace('/*', '/$1');
return acc;
}, {});

module.exports = {
const jestConfig: JestConfigWithTsJest = {
verbose: true,
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'^(nukak)/(.*)\\.js$': '<rootDir>/packages/$1/src/$2',
'^(\\.{1,2}/.*)\\.js$': '$1',
},
transform: {
// '^.+\\.[tj]sx?$' to process js/ts with `ts-jest`
// '^.+\\.m?[tj]sx?$' to process js/ts/mjs/mts with `ts-jest`
'^.+\\.tsx?$': [
'ts-jest',
{
tsconfig: 'tsconfig.test.json',
useESM: true,
},
],
},
Expand All @@ -28,5 +24,6 @@ module.exports = {
coverageDirectory: 'coverage',
coveragePathIgnorePatterns: ['node_modules', 'test'],
modulePathIgnorePatterns: ['dist'],
moduleNameMapper,
};

export default jestConfig;
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "0.0.4",
"version": "0.0.8",
"useWorkspaces": true,
"npmClient": "yarn",
"npmClientArgs": ["--no-package-lock"],
Expand Down
16 changes: 9 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"private": true,
"type": "module",
"sideEffects": false,
"workspaces": [
"packages/*"
],
Expand All @@ -21,20 +23,20 @@
]
},
"devDependencies": {
"@commitlint/cli": "^17.2.0",
"@commitlint/config-conventional": "^17.2.0",
"@commitlint/cli": "^17.3.0",
"@commitlint/config-conventional": "^17.3.0",
"@types/jest": "^29.2.3",
"@typescript-eslint/eslint-plugin": "^5.43.0",
"@typescript-eslint/parser": "^5.43.0",
"concurrently": "^7.5.0",
"@typescript-eslint/eslint-plugin": "^5.44.0",
"@typescript-eslint/parser": "^5.44.0",
"concurrently": "^7.6.0",
"coveralls": "^3.1.1",
"eslint": "^8.27.0",
"eslint": "^8.28.0",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-typescript": "3.5.2",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.2.1",
"jest": "^29.3.1",
"prettier": "^2.7.1",
"prettier": "^2.8.0",
"rimraf": "^3.0.2",
"run-rs": "^0.7.7",
"ts-jest": "^29.0.3",
Expand Down
14 changes: 8 additions & 6 deletions packages/nukak-browser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,23 @@
"name": "nukak-browser",
"description": "flexible and efficient ORM, with declarative JSON syntax and smart type-safety",
"license": "MIT",
"version": "0.0.4",
"version": "0.0.8",
"type": "module",
"main": "./nukak-browser.min.js",
"types": "./nukak-browser.min.d.ts",
"sideEffects": false,
"scripts": {
"copyfiles": "copyfiles -f package.json ../../README.md ../../CHANGELOG.md dist",
"compile": "NODE_ENV=production webpack",
"build": "yarn clean && concurrently 'yarn:compile' && yarn copyfiles",
"compile": "NODE_ENV=production node --loader ts-node/esm node_modules/.bin/webpack",
"dts": "dts-bundle-generator --no-check -o './dist/nukak-browser.min.d.ts' './src/index.ts'",
"build": "yarn clean && concurrently 'yarn:compile' 'yarn:dts' && yarn copyfiles",
"start": "yarn clean && webpack --profile --bail --watch --info-verbosity verbose",
"clean": "rimraf dist *.tsbuildinfo"
},
"devDependencies": {
"@types/webpack": "^5.28.0",
"copyfiles": "^2.4.1",
"dts-bundle": "^0.7.3",
"nukak": "^0.0.4",
"dts-bundle-generator": "^7.1.0",
"nukak": "^0.0.8",
"rimraf": "^3.0.2",
"source-map-loader": "^4.0.1",
"ts-loader": "^9.4.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-browser/src/http/bus.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RequestNotification } from '../type';
import { on, notify } from './bus';
import { RequestNotification } from '../type/index.js';
import { on, notify } from './bus.js';

it('bus', () => {
const off = on((msg) => {
Expand Down
2 changes: 1 addition & 1 deletion packages/nukak-browser/src/http/bus.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RequestCallback, RequestNotification } from '../type';
import { RequestCallback, RequestNotification } from '../type/index.js';

const subscriptors: RequestCallback[] = [];

Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-browser/src/http/http.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { RequestOptions, RequestSuccessResponse, RequestErrorResponse } from '../type';
import { notify } from './bus';
import { RequestOptions, RequestSuccessResponse, RequestErrorResponse } from '../type/index.js';
import { notify } from './bus.js';

export function get<T>(url: string, opts?: RequestOptions) {
return request<T>(url, { method: 'get' }, opts);
Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-browser/src/http/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from './bus';
export * from './http';
export * from './bus.js';
export * from './http.js';
8 changes: 4 additions & 4 deletions packages/nukak-browser/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export * from './type';
export * from './options';
export * from './http';
export * from './querier';
export * from './options.js';
export * from './type/index.js';
export * from './http/index.js';
export * from './querier/index.js';
8 changes: 4 additions & 4 deletions packages/nukak-browser/src/options.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { User } from 'nukak/test';
import { getQuerier, getQuerierPool, setQuerierPool } from './options';
import { GenericClientRepository, HttpQuerier } from './querier';
import { ClientQuerierPool } from './type/clientQuerierPool';
import { User } from 'nukak/test/index.js';
import { getQuerier, getQuerierPool, setQuerierPool } from './options.js';
import { GenericClientRepository, HttpQuerier } from './querier/index.js';
import { ClientQuerierPool } from './type/clientQuerierPool.js';

describe('options', () => {
it('default getQuerier', () => {
Expand Down
6 changes: 3 additions & 3 deletions packages/nukak-browser/src/options.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { HttpQuerier } from './querier/httpQuerier';
import { ClientQuerier } from './type';
import { ClientQuerierPool } from './type/clientQuerierPool';
import { HttpQuerier } from './querier/httpQuerier.js';
import { ClientQuerier } from './type/index.js';
import { ClientQuerierPool } from './type/clientQuerierPool.js';

let defaultPool: ClientQuerierPool = {
getQuerier: () => new HttpQuerier('/api'),
Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-browser/src/querier/genericClientRepository.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { IdValue, Query, QueryCriteria, QueryOptions, QuerySearch, QueryUnique, Type } from 'nukak/type';
import { ClientQuerier, ClientRepository, RequestOptions } from '../type';
import { IdValue, Query, QueryCriteria, QueryOptions, QuerySearch, QueryUnique, Type } from 'nukak/type/index.js';
import { ClientQuerier, ClientRepository, RequestOptions } from '../type/index.js';

export class GenericClientRepository<E> implements ClientRepository<E> {
constructor(readonly entity: Type<E>, readonly querier: ClientQuerier) {}
Expand Down
14 changes: 7 additions & 7 deletions packages/nukak-browser/src/querier/httpQuerier.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { getMeta } from 'nukak/entity/decorator';
import { IdValue, Query, QueryCriteria, QueryOne, QueryOptions, QuerySearch, QueryUnique, Type } from 'nukak/type';
import { kebabCase } from 'nukak/util';
import { RequestOptions, RequestFindOptions, ClientQuerier, ClientRepository } from '../type';
import { get, post, patch, remove } from '../http';
import { stringifyQuery } from './querier.util';
import { GenericClientRepository } from './genericClientRepository';
import { getMeta } from 'nukak/entity/decorator/definition.js';
import { IdValue, Query, QueryCriteria, QueryOne, QueryOptions, QuerySearch, QueryUnique, Type } from 'nukak/type/index.js';
import { kebabCase } from 'nukak/util/index.js';
import { RequestOptions, RequestFindOptions, ClientQuerier, ClientRepository } from '../type/index.js';
import { get, post, patch, remove } from '../http/index.js';
import { stringifyQuery } from './querier.util.js';
import { GenericClientRepository } from './genericClientRepository.js';

export class HttpQuerier implements ClientQuerier {
constructor(readonly basePath: string) {}
Expand Down
6 changes: 3 additions & 3 deletions packages/nukak-browser/src/querier/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export * from './httpQuerier';
export * from './genericClientRepository';
export * from './querier.util';
export * from './httpQuerier.js';
export * from './genericClientRepository.js';
export * from './querier.util.js';
6 changes: 3 additions & 3 deletions packages/nukak-browser/src/querier/querier.util.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Query } from 'nukak/type';
import { Item, User } from 'nukak/test';
import { stringifyQuery, stringifyQueryParameter } from './querier.util';
import { Query } from 'nukak/type/index.js';
import { Item, User } from 'nukak/test/index.js';
import { stringifyQuery, stringifyQueryParameter } from './querier.util.js';

it('stringifyQuery -- empty', () => {
const source: Query<User> = {};
Expand Down
2 changes: 1 addition & 1 deletion packages/nukak-browser/src/querier/querier.util.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getKeys } from 'nukak/util';
import { getKeys } from 'nukak/util/index.js';

export function stringifyQueryParameter(key: string, value?: any, useQuestionMark?: boolean): string {
const valStr = typeof value === 'object' && value !== null ? JSON.stringify(value) : value;
Expand Down
6 changes: 3 additions & 3 deletions packages/nukak-browser/src/type/clientQuerier.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Query, Type, UniversalQuerier, QueryCriteria, QueryOptions, QuerySearch, IdValue, QueryUnique } from 'nukak/type';
import { ClientRepository } from './clientRepository';
import { RequestOptions, RequestSuccessResponse } from './request';
import { Query, Type, UniversalQuerier, QueryCriteria, QueryOptions, QuerySearch, IdValue, QueryUnique } from 'nukak/type/index.js';
import { ClientRepository } from './clientRepository.js';
import { RequestOptions, RequestSuccessResponse } from './request.js';

export interface ClientQuerier extends UniversalQuerier {
count<E>(entity: Type<E>, qm?: QuerySearch<E>, opts?: RequestOptions): Promise<RequestSuccessResponse<number>>;
Expand Down
2 changes: 1 addition & 1 deletion packages/nukak-browser/src/type/clientQuerierPool.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ClientQuerier } from './clientQuerier';
import { ClientQuerier } from './clientQuerier.js';

export type ClientQuerierPool = {
getQuerier(): ClientQuerier;
Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-browser/src/type/clientRepository.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Query, UniversalRepository, QueryCriteria, QueryOptions, QuerySearch, IdValue, QueryUnique } from 'nukak/type';
import { RequestOptions, RequestSuccessResponse } from './request';
import { Query, UniversalRepository, QueryCriteria, QueryOptions, QuerySearch, IdValue, QueryUnique } from 'nukak/type/index.js';
import { RequestOptions, RequestSuccessResponse } from './request.js';

export interface ClientRepository<E> extends UniversalRepository<E> {
count(qm: QuerySearch<E>, opts?: RequestOptions): Promise<RequestSuccessResponse<number>>;
Expand Down
6 changes: 3 additions & 3 deletions packages/nukak-browser/src/type/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export * from './request';
export * from './clientQuerier';
export * from './clientRepository';
export * from './request.js';
export * from './clientQuerier.js';
export * from './clientRepository.js';
3 changes: 2 additions & 1 deletion packages/nukak-browser/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{
"$schema": "http://json.schemastore.org/tsconfig",
"extends": "../../tsconfig.json",
"compilerOptions": {
"target": "ES2020",
"lib": ["ES2022", "DOM"],
"lib": ["ESNext", "DOM"],
"importHelpers": false,
"outDir": "dist"
},
Expand Down
41 changes: 12 additions & 29 deletions packages/nukak-browser/webpack.config.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,31 @@
/* eslint-disable @typescript-eslint/no-var-requires */
import { resolve } from 'path';
import { Compiler, Configuration } from 'webpack';
import { resolve } from 'node:path';
import { Configuration } from 'webpack';
import ResolveTypeScriptPlugin from 'resolve-typescript-plugin';
import tsconfig from '../../tsconfig.json' assert { type: 'json' };

const parentDir = '../../';
const tsPathAliases = require(`${parentDir}tsconfig.json`).compilerOptions.paths;
const tsPathAliases = tsconfig.compilerOptions.paths;
const entryName = 'nukak-browser.min';
const outDir = 'dist';
type Mode = 'development' | 'production';
const mode = (process.env.NODE_ENV as Mode) ?? 'development';
const isProductionMode = mode === 'production';
console.debug('*** mode', mode);

class DtsBundlePlugin {
apply(compiler: Compiler) {
compiler.hooks.done.tapAsync('DtsBundlePlugin', () => {
const rootDir = resolve(__dirname);
const dts = require('dts-bundle');
const rimraf = require('rimraf');

dts.bundle({
name: 'nukak',
main: `${rootDir}/${outDir}/nukak-browser/**/*.d.ts`,
out: `${rootDir}/${outDir}/${entryName}.d.ts`,
outputAsModuleFolder: true,
});

rimraf.sync(`${outDir}/{core,client}`);
});
}
}

const config: Configuration = {
mode,
profile: true,
bail: isProductionMode,
devtool: isProductionMode ? 'source-map' : 'cheap-module-source-map',

resolve: {
extensions: ['.ts', '.js'],
extensions: ['.js'],
alias: buildAlias(),
plugins: [new ResolveTypeScriptPlugin()],
},

entry: {
[entryName]: ['./src/index.ts'],
[entryName]: ['./src/index.js'],
},

output: {
Expand All @@ -68,17 +51,17 @@ const config: Configuration = {
},
],
},

plugins: [new DtsBundlePlugin()],
};

function buildAlias() {
return Object.keys(tsPathAliases).reduce((acc, key) => {
const alias = Object.keys(tsPathAliases).reduce((acc, key) => {
const prop = key.replace('/*', '');
const val = tsPathAliases[key][0].replace('/*', '');
acc[prop] = resolve(parentDir, val);
return acc;
}, {});
console.log('ts alias', alias);
return alias;
}

module.exports = config;
export default config;
9 changes: 6 additions & 3 deletions packages/nukak-express/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
"homepage": "https://nukak.org",
"description": "flexible and efficient ORM, with declarative JSON syntax and smart type-safety",
"license": "MIT",
"version": "0.0.4",
"version": "0.0.8",
"type": "module",
"main": "./index.js",
"types": "./index.d.ts",
"sideEffects": false,
"scripts": {
"copyfiles": "copyfiles -f package.json ../../README.md ../../CHANGELOG.md dist",
"build": "yarn clean && tsc -b tsconfig.build.json && yarn copyfiles",
Expand All @@ -14,13 +16,14 @@
},
"peerDependencies": {
"express": "^4.18.2",
"nukak": "^0.0.2"
"nukak": "^0.0.6"
},
"devDependencies": {
"@types/express": "4.17.14",
"copyfiles": "^2.4.1",
"express": "^4.18.2",
"nukak": "^0.0.4",
"nukak": "^0.0.8",
"resolve-typescript-plugin": "^2.0.0",
"rimraf": "^3.0.2",
"typescript": "^4.9.3"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/nukak-express/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export * from './querierMiddleware';
export * from './query.util';
export * from './querierMiddleware.js';
export * from './query.util.js';
Loading

0 comments on commit 0ffd583

Please sign in to comment.