mirror of
https://github.com/storytold/placeholder-artcraft.git
synced 2026-10-09 00:09:55 +00:00
mirror repo (WIP)
Need to remove secrets before entire repo can be made public.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
[
|
||||
"@nx/react/babel",
|
||||
{
|
||||
"runtime": "automatic",
|
||||
"useBuiltIns": "usage"
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": []
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# @frontend/build-env
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running unit tests
|
||||
|
||||
Run `nx test @frontend/build-env` to execute the unit tests via [Vitest](https://vitest.dev/).
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"name": "@frontend/build-env",
|
||||
"version": "0.0.1",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": {
|
||||
"development": "./src/index.ts",
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.js",
|
||||
"default": "./dist/index.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
export * from './lib/build-env';
|
||||
@@ -0,0 +1,30 @@
|
||||
import { BuildEnvType, GetBuildEnvType } from "./BuildEnvType";
|
||||
|
||||
export class BuildEnv {
|
||||
private static instance: BuildEnv;
|
||||
private readonly envType: BuildEnvType;
|
||||
|
||||
public static getInstance(): BuildEnv {
|
||||
if (BuildEnv.instance !== undefined) {
|
||||
return BuildEnv.instance;
|
||||
}
|
||||
|
||||
const envType = GetBuildEnvType();
|
||||
const instance = new BuildEnv(envType);
|
||||
BuildEnv.instance = instance;
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
public getType(): BuildEnvType {
|
||||
return this.envType;
|
||||
}
|
||||
|
||||
private constructor(envType: BuildEnvType) {
|
||||
this.envType = envType;
|
||||
}
|
||||
}
|
||||
|
||||
export function GetBuildEnv() : BuildEnv {
|
||||
return BuildEnv.getInstance();
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
|
||||
/**
|
||||
* This is cached whenever vite/remix launches or CI/CD bakes in constants.
|
||||
* It's fed from an environment variable.
|
||||
*/
|
||||
export enum BuildEnvType {
|
||||
Dev,
|
||||
DevProxy,
|
||||
Staging,
|
||||
Production,
|
||||
}
|
||||
|
||||
// Use CI/CD to replace this value with one of the BuildEnvType values.
|
||||
const BUILD_ENV_TYPE = '%BUILD_ENV_TYPE_VALUE%';
|
||||
|
||||
// Attempt to read the environment type.
|
||||
export function GetBuildEnvType() : BuildEnvType {
|
||||
let maybeEnvType : BuildEnvType | undefined = undefined;
|
||||
|
||||
if (!BUILD_ENV_TYPE.startsWith("%") && !BUILD_ENV_TYPE.endsWith("%")) {
|
||||
maybeEnvType = stringToEnvType(BUILD_ENV_TYPE);
|
||||
if (maybeEnvType !== undefined) {
|
||||
return maybeEnvType;
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.env.BUILD_ENV_TYPE !== undefined) {
|
||||
console.log(`Reading environment variable 'BUILD_ENV_TYPE' (= ${import.meta.env.BUILD_ENV_TYPE}) to determine build environment.`)
|
||||
maybeEnvType = stringToEnvType(import.meta.env.BUILD_ENV_TYPE);
|
||||
if (maybeEnvType !== undefined) {
|
||||
return maybeEnvType;
|
||||
}
|
||||
}
|
||||
|
||||
if (import.meta.env.VITE_ENVIRONMENT_TYPE !== undefined) {
|
||||
console.log(`Reading legacy environment variable 'VITE_ENVIRONMENT_TYPE' (= ${import.meta.env.VITE_ENVIRONMENT_TYPE}) to determine build environment.`)
|
||||
maybeEnvType = stringToEnvType(import.meta.env.VITE_ENVIRONMENT_TYPE);
|
||||
if (maybeEnvType !== undefined) {
|
||||
return maybeEnvType;
|
||||
}
|
||||
}
|
||||
|
||||
// Always default to production.
|
||||
return BuildEnvType.Production;
|
||||
}
|
||||
|
||||
function stringToEnvType(str: string): BuildEnvType | undefined {
|
||||
switch (str.toLocaleLowerCase()) {
|
||||
case "dev":
|
||||
case "development":
|
||||
return BuildEnvType.Dev;
|
||||
case "dev-proxy":
|
||||
case "devproxy":
|
||||
return BuildEnvType.DevProxy;
|
||||
case "stage":
|
||||
case "staging":
|
||||
return BuildEnvType.Staging;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
},
|
||||
{
|
||||
"path": "./tsconfig.spec.json"
|
||||
}
|
||||
],
|
||||
"extends": "../../tsconfig.base.json"
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "dist",
|
||||
"types": [
|
||||
"node",
|
||||
"@nx/react/typings/cssmodule.d.ts",
|
||||
"@nx/react/typings/image.d.ts",
|
||||
"vite/client"
|
||||
],
|
||||
"rootDir": "src",
|
||||
"jsx": "react-jsx",
|
||||
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo"
|
||||
},
|
||||
"exclude": [
|
||||
"out-tsc",
|
||||
"dist",
|
||||
"**/*.spec.ts",
|
||||
"**/*.test.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.test.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.test.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.test.jsx",
|
||||
"vite.config.ts",
|
||||
"vite.config.mts",
|
||||
"vitest.config.ts",
|
||||
"vitest.config.mts",
|
||||
"src/**/*.test.ts",
|
||||
"src/**/*.spec.ts",
|
||||
"src/**/*.test.tsx",
|
||||
"src/**/*.spec.tsx",
|
||||
"src/**/*.test.js",
|
||||
"src/**/*.spec.js",
|
||||
"src/**/*.test.jsx",
|
||||
"src/**/*.spec.jsx"
|
||||
],
|
||||
"include": [
|
||||
"src/**/*.js",
|
||||
"src/**/*.jsx",
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./out-tsc/vitest",
|
||||
"types": [
|
||||
"vitest/globals",
|
||||
"vitest/importMeta",
|
||||
"vite/client",
|
||||
"node",
|
||||
"vitest"
|
||||
],
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"include": [
|
||||
"vite.config.ts",
|
||||
"vite.config.mts",
|
||||
"vitest.config.ts",
|
||||
"vitest.config.mts",
|
||||
"src/**/*.test.ts",
|
||||
"src/**/*.spec.ts",
|
||||
"src/**/*.test.tsx",
|
||||
"src/**/*.spec.tsx",
|
||||
"src/**/*.test.js",
|
||||
"src/**/*.spec.js",
|
||||
"src/**/*.test.jsx",
|
||||
"src/**/*.spec.jsx",
|
||||
"src/**/*.d.ts"
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
import { defineConfig } from 'vite';
|
||||
import react from '@vitejs/plugin-react';
|
||||
import dts from 'vite-plugin-dts';
|
||||
import * as path from 'path';
|
||||
|
||||
export default defineConfig(() => ({
|
||||
root: __dirname,
|
||||
cacheDir: '../../node_modules/.vite/libs/build-env',
|
||||
plugins: [react(), dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json') }), ],
|
||||
// Uncomment this if you are using workers.
|
||||
// worker: {
|
||||
// plugins: [ nxViteTsPaths() ],
|
||||
// },
|
||||
// Configuration for building your library.
|
||||
// See: https://vitejs.dev/guide/build.html#library-mode
|
||||
build: {
|
||||
'emptyOutDir': true,
|
||||
'transformMixedEsModules': true,
|
||||
'entry': 'src/index.ts',
|
||||
'name': '@frontend/build-env',
|
||||
'fileName': 'index',
|
||||
'formats': ['es' as const],
|
||||
'external': ['react','react-dom','react/jsx-runtime'],
|
||||
'lib': {
|
||||
'entry': "src/index.ts",
|
||||
'name': "@frontend/build-env",
|
||||
'fileName': "index",
|
||||
'formats': ['es' as const],
|
||||
},
|
||||
'rollupOptions': {"external":["'react'","'react-dom'","'react/jsx-runtime'"]},
|
||||
'outDir': "./dist",
|
||||
'reportCompressedSize': true,
|
||||
'commonjsOptions': {"transformMixedEsModules":true},
|
||||
},
|
||||
test: {
|
||||
'watch': false,
|
||||
'globals': true,
|
||||
'environment': "jsdom",
|
||||
'include': ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
||||
'reporters': ["default"],
|
||||
'coverage': {
|
||||
'reportsDirectory': './test-output/vitest/coverage',
|
||||
'provider': 'v8' as const,
|
||||
}
|
||||
},
|
||||
}));
|
||||
Reference in New Issue
Block a user